package com.sxj.corejava.code09_集合.List;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 石小俊
 * @date 2025年02月19日
 */
public class Test01_ArrayList定义方式 {

    public static void main(String[] args) {
        // 方式一:定义一个初始容量为10的空列表
        // 该方式不需要指定长度,其使用默认长度
        // 集合中定义时一般需要指定泛型类型,如果不指定,则默认使用Object
        ArrayList list = new ArrayList();
        System.out.println("空集合:" + list);
        // 通过add方法向集合中添加数据
        list.add(1);
        list.add(3.14);
        list.add(true);
        list.add('c');
        list.add("admin");
        System.out.println("添加元素后的集合:" + list);
        System.out.println("集合中元素的数量:" + list.size());

        // 方式二: 构造一个具有指定初始容量的空列表
        // 不指定容量,则使用默认值10,指定后则使用指定的容量
        // 指定泛型后,该集合中只能存储泛型对应类型的元素
        ArrayList<String> list2 = new ArrayList<>(2);
        list2.add("admin");
        list2.add("alice");
        list2.add("jack");
        System.out.println(list2);

        // 方式三:构造一个包含指定 collection 的元素的列表，这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
        // 即:将一个Collection集合转换成对应的ArrayList集合
        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        // 将指定集合numbers转换成ArrayList集合
        // 转换后的集合元素与转换前集合的元素基本一致
        ArrayList<Integer> list3 = new ArrayList<>(numbers);
        System.out.println(list3);
    }

}
